import { request } from "../api/request";

/**
 * 登录接口
 * @param {Object} loginData - 登录数据，包含手机号或邮箱和密码
 * @param {string} loginData.phone - 手机号（可选）
 * @param {string} loginData.email - 邮箱（可选）
 * @param {string} loginData.password - 密码
 * @returns {Promise} 返回登录结果
 */
export const loginApi = (loginData) => {
  return request({
    url: "/user/login", // 请求路径
    method: "POST", // 请求方法
    data: loginData, // 请求体
  });
};

/**
 * 注册接口
 * @param {Object} registerData - 注册数据
 * @param {string} registerData.phone - 手机号
 * @param {string} registerData.email - 邮箱
 * @param {string} registerData.password - 密码
 * @param {string} registerData.username - 用户名
 * @param {string} registerData.real_name - 真实姓名
 * @param {string} registerData.gender - 性别
 * @param {string} registerData.role - 用户类型
 * @param {boolean} registerData.is_active - 是否激活
 * @returns {Promise} 返回注册结果
 */
export const registerApi = (registerData) => {
  return request({
    url: "/user/register",
    method: "POST",
    data: registerData,
  });
};
/**
 * 上传用户头像接口
 * @param {UploadFile} file - 用户 ID，传 0 表示获取当前用户信息
 * @returns {UserOccupied}  - 当前登录用户信息
 */
export const uploadAvatarApi = (formData) => {
  return request({
    url: `/user/upload_avatar`, // 动态路径
    method: "POST", // 请求方法
    data: formData, // FormData 对象，包含用户头像文件
    headers: {
      "Content-Type": "multipart/form-data", // 指定发送的内容类型
    },
  });
};
/**
 * 获取用户详情接口
 * @param {number} userId - 用户 ID，传 0 表示获取当前用户信息
 * @returns {Promise} 返回用户详情
 */
export const getUserInfoApi = (userId = 0) => {
  return request({
    url: `/user/${userId}`, // 动态路径
    method: "GET", // 请求方法
  });
};

/**
 * 获取所有用户接口
 * @param {Object} params - 查询参数
 * @param {number} params.skip - 跳过的记录数（分页用）
 * @param {number} params.limit - 每页的记录数
 * @returns {Promise} 返回所有用户的信息
 */
export const getAllUsersApi = (params = { skip: 0, limit: 10 }) => {
  return request({
    url: "/user/", // 请求路径
    method: "GET", // 请求方法
    params, // 查询参数
  });
};

/**
 * 获取招聘方用户列表
 * @param {Object} params - 查询参数
 * @param {number} params.skip - 跳过的记录数（分页用）
 * @param {number} params.limit - 每页的记录数
 * @returns {Promise} 返回招聘方用户列表
 */
export const getRecruitersApi = (params = { skip: 0, limit: 10 }) => {
  return request({
    url: "/user/recruiters", // 请求路径
    method: "GET", // 请求方法
    params, // 查询参数
  });
};

/**
 * 获取求职者用户列表
 * @param {Object} params - 查询参数
 * @param {number} params.skip - 跳过的记录数（分页用）
 * @param {number} params.limit - 每页的记录数
 * @returns {Promise} 返回求职者用户列表
 */
export const getJobSeekersApi = (params = { skip: 0, limit: 10 }) => {
  return request({
    url: "/user/job_seekers", // 请求路径
    method: "GET", // 请求方法
    params, // 查询参数
  });
};
